package v1

import (
	"base-web/api/reponse"
	"base-web/pkg/juhe_api"
	"errors"
	"github.com/gin-gonic/gin"
)

// @Tags 聚合接口
// @Summary 笑话大全
// @Description 获取笑话大全列表
// @Accept mpfd
// @Produce  json
// @Param page query string true "页数"
// @Param pageSize query string true "每页数量"
// @Success 200
// @Router /api/v1/juhe/joke [get]
func Joke(c *gin.Context) {
	page := c.DefaultQuery("page", "1")
	pageSize := c.DefaultQuery("pageSize", "20")
	resp, err := juhe_api.JuHeJokeList(page, pageSize)
	if err != nil {
		reponse.FailWithMessage(err.Error(), c)
		return
	}
	reponse.OKWithDta(gin.H{"list": resp.Result}, c)
}

// @Tags 聚合接口
// @Summary 新闻头条
// @Description 获取新闻头条列表
// @Accept mpfd
// @Produce  json
// @Success 200
// @Router /api/v1/juhe/toutiao [get]
func Toutiao(c *gin.Context) {
	resp, err := juhe_api.JuHeToutiaoList()
	if err != nil {
		reponse.FailWithMessage(err.Error(), c)
		return
	}
	reponse.OKWithDta(gin.H{"list": resp.Result}, c)
}

// @Tags 聚合接口
// @Summary 天气预报
// @Description 获取天气预报列表
// @Accept mpfd
// @Produce  json
// @Param city query string true "城市"
// @Success 200
// @Router /api/v1/juhe/weather [get]
func Weather(c *gin.Context) {
	city := c.DefaultQuery("city", "")
	resp, err := juhe_api.JuHeWeatherList(city)
	if err != nil {
		reponse.FailWithMessage(err.Error(), c)
		return
	}
	reponse.OKWithDta(gin.H{"list": resp.Result}, c)
}

// @Tags 聚合接口
// @Summary 历史上的今天
// @Description 获取天气预报列表
// @Accept mpfd
// @Produce  json
// @Param mouth query string true "月份"
// @Param day query string true "日"
// @Success 200
// @Router /api/v1/juhe/japi [get]
func Japi(c *gin.Context) {
	mouth := c.DefaultQuery("mouth", "")
	day := c.DefaultQuery("day", "")
	resp, err := juhe_api.JuHeJapiList(mouth, day)
	if err != nil {
		reponse.FailWithMessage(err.Error(), c)
		return
	}
	reponse.OKWithDta(gin.H{"list": resp.Result}, c)
}

// @Tags 聚合接口
// @Summary 手机号归属地查询
// @Description 获取手机号归属地
// @Accept mpfd
// @Produce  json
// @Param mobile query string true "手机号"
// @Success 200
// @Router /api/v1/juhe/mobile [get]
func Mobile(c *gin.Context) {
	mobile := c.DefaultQuery("mobile", "")
	if len(mobile) != 11 {
		err := errors.New("手机号格式错误")
		reponse.FailWithMessage(err.Error(), c)
		return
	}
	resp, err := juhe_api.JuHeMobile(mobile)
	if err != nil {
		reponse.FailWithMessage(err.Error(), c)
		return
	}
	reponse.OKWithDta(gin.H{"list": resp.Result}, c)
}
